package com.exam.api.modules.dict.service;

import com.exam.api.modules.dict.domain.SysDictItem;
import com.exam.api.modules.dict.domain.SysDict;
import com.exam.api.modules.dict.dto.SysDictDTO;
import com.exam.api.modules.dict.dto.SysDictSearchDTO;
import com.exam.api.modules.dict.vo.SysDictVO;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.service.IService;

import java.util.List;
/**
* @author iaa
* @description 针对表【sys_dict(字典)】的数据库操作Service
* @createDate 2025-06-17 14:00:39
*/
public interface SysDictService extends IService<SysDict> {
    /**
     * 创建字典
     * @param dto
     */
    void createSysDict(SysDictDTO dto);

    /**
     * 更新字典
     * @param dto
     */
    void updateSysDict(SysDictDTO dto);

    /**
     * 分页查询字典
     * @param dto
     */
    IPage<SysDictVO> pageSysDict(SysDictSearchDTO dto);

    /**
     * 删除字典
     * @param id
     */
    void delSysDict(Long id);

    /**
     * 根据id查询
     * @param id
     * @return
     */
    SysDictVO selectById(Long id);

    /**
    * 批量删除字典
    *
    * @param ids
    */
    void deleteBatch(List<Long> ids);

    /**
     * 根据id查询字典名称
     * @param l
     * @return
     */
    String getNameById(long l);

    List<String> listDictValueByCode(String code);

    List<SysDictItem> listDictByCode(String code);

    /**
     * 查询所有code
     * @param codeList
     * @return
     */
    List<String> selectCodeByCodeList(List<String> codeList);
}
